package com.yjpark.apps.netcalc;

import java.io.ByteArrayInputStream;
import java.io.ByteArrayOutputStream;

import android.app.Activity;
import android.content.Intent;
import android.graphics.Bitmap;
import android.graphics.Bitmap.CompressFormat;
import android.graphics.BitmapFactory;
import android.os.Bundle;
import android.util.Base64;
import android.util.Log;
import android.view.Menu;
import android.view.MenuInflater;
import android.view.View;
import android.widget.EditText;
import android.widget.ImageView;
import android.widget.TextView;
import android.widget.Toast;

public class JoinActivity extends Activity {
	
    Intent intent;
    
	@Override
	protected void onCreate(Bundle savedInstanceState) {
		// TODO Auto-generated method stub
		super.onCreate(savedInstanceState);
		setContentView(R.layout.join_layout);	
	}
	
	final int REQ_CODE_PICK_PICTURE = 0;
    public void onClickGallery(View view) {
    	intent = new Intent(JoinActivity.this, GalleryActivity.class);
    	
//    	// 선택된 프로필 이미지 확인 후 전달 - #ing#
//    	ImageView imageView_Profile = (ImageView) findViewById(R.id.imageView_Profile);
//    	
//        // 선택된 이미지 thumbnail bitmap 생성
//    	imageView_Profile.setDrawingCacheEnabled(true);
//        if(imageView_Profile.isDrawingCacheEnabled()) {
//            Bitmap thumbnail = imageView_Profile.getDrawingCache();
//            
//            // intent.putExtra 로 처리
//            setProfileImageBase64(thumbnail);
//        }
//        imageView_Profile.setDrawingCacheEnabled(false);
        
        
    	// intent 결과값 요청
    	startActivityForResult(intent, 1);
    	
        /**
         * 기본 갤러리 이용시
         */
        /**
		Intent i = new Intent(Intent.ACTION_PICK);
		i.setType(android.provider.MediaStore.Images.Media.CONTENT_TYPE);
		i.setData(android.provider.MediaStore.Images.Media.EXTERNAL_CONTENT_URI); // images on the SD card.
		
		// 결과를 리턴하는 Activity 호출
		startActivityForResult(i, REQ_CODE_PICK_PICTURE);
		 */
    }

    public void setProfileImageBase64(Bitmap bm) {
        if(bm == null)
            return;
        
        // bitmap -> outputstream -> byte[] -> base64 encode
        ByteArrayOutputStream stream = new ByteArrayOutputStream();
        bm.compress(CompressFormat.PNG, 100, stream);
        byte[] image = stream.toByteArray();
        String profileImageBase64 = Base64.encodeToString(image, Base64.DEFAULT);
        
        // intent 에 설정
        intent.putExtra("profileImageBase64", profileImageBase64);
    }
    

    public void onClickRegist(View view) {
        EditText idText = (EditText) findViewById(R.id.editText_ID);
        EditText passwdText = (EditText) findViewById(R.id.editText_Pass);
        EditText passwdConfirmText = (EditText) findViewById(R.id.editText_PassConfirm);
        
        String idTextStr = idText.getText().toString();
        String passwdTextStr = passwdText.getText().toString();
        String passwdConfirmTextStr = passwdConfirmText.getText().toString();
        
        if(idTextStr.equals("") || passwdTextStr.equals("") || passwdConfirmTextStr.equals("")) {
            // 하나라도 입력이 없는 경우
            // toast 띄우기
            Toast.makeText(JoinActivity.this, "Please check your input", Toast.LENGTH_SHORT).show();
            return;
        }
        
        if(!passwdTextStr.equals(passwdConfirmTextStr)) {
            // 비밀번호 입력이 일치하지 않는 경우
            // toast 띄우기
            Toast.makeText(JoinActivity.this, "Doesn' match Password and Password Confirm", Toast.LENGTH_SHORT).show();
            return;
        }
        
        // 입력값이 정상인 경우
        
    }
    
    public void onClickCancel(View view) {
    	super.onBackPressed();
    }
    
    @Override
    protected void onActivityResult(int requestCode, int resultCode, Intent data) 
    {
        // 결과 값이 있고, 액티비티를 시작할 때 1로 설정해둔 결과값인 경우
        if(resultCode == RESULT_OK && requestCode == 1) {

            // base64 decode -> byte[] -> inputstream -> bitmap
            byte[] image = Base64.decode(data.getStringExtra("profileImageBase64"), Base64.DEFAULT);
            ByteArrayInputStream stream = new ByteArrayInputStream(image);
            Bitmap bm = BitmapFactory.decodeStream(stream);
            
    		ImageView imgView = (ImageView)findViewById(R.id.imageView_Profile);
    		imgView.setImageBitmap(bm);

        }
    	
        /**
         * 기본 갤러리 이용시
         */
        /**
		if (requestCode == REQ_CODE_PICK_PICTURE) {
			if (resultCode == Activity.RESULT_OK) {
				ImageView img = (ImageView) findViewById(R.id.imageView_Profile);
				img.setImageURI(data.getData()); // 사진 선택한 사진URI로 연결하기
			}
		}
         */
    }
    
    @Override
    public boolean onCreateOptionsMenu(Menu menu) {
        boolean result = super.onCreateOptionsMenu(menu);
        
        MenuInflater inflater = getMenuInflater();
        inflater.inflate(R.menu.join_menu, menu);
        
        return result;
    }

}
